-
Notifications
You must be signed in to change notification settings - Fork 59
Cleanup and restructure BI E2E test suite #1041
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Cleanup and restructure BI E2E test suite #1041
Conversation
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughRefactors Playwright e2e test utilities for the BI extension: extracts helpers (webview, artifacts, verification), adds barrel exports, updates import paths across ~25 test specs, removes a template spec, and adds a sample Ballerina project and new helper/page index files. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.ts (1)
34-34: Remove leftover comment.The comment "how to get element by id" appears to be a developer note and should be removed for cleaner code.
Apply this diff:
- // how to get element by id const addArtifactBtn = artifactWebView.locator(`#${testId}`);workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (1)
32-32: Consider restoring type safety.The change to
anytype removes type checking for thevscodevariable. If possible, use the specific type returned bystartVSCodeto maintain type safety in test utilities.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (35)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/template/template.spec.ts(0 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/Ballerina.toml(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/main.bal(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/verification.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts(1 hunks)
💤 Files with no reviewable changes (1)
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/template/template.spec.ts
🧰 Additional context used
🧠 Learnings (17)
📓 Common learnings
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:136-141
Timestamp: 2025-11-26T07:49:56.428Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the goPrevViewBackButton() method is only called when in a focused view, ensuring breadcrumbs are always present. No guard for empty breadcrumbs is needed.
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:173-178
Timestamp: 2025-11-26T06:35:19.217Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the commented-out debugging block in the verifyFileContent function (lines 172-177 containing console.log, page.pause, and updateDataFileSync) is intentionally kept as a developer utility for updating test data files when needed. It should not be removed.
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:128-134
Timestamp: 2025-11-26T06:34:09.752Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the goPrevViewBreadcrumb() method is only called when in a focused view, ensuring breadcrumbs are always present. No guard for empty breadcrumbs is needed.
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/dm-data/array-inner/inline/map3.bal.txt:6-8
Timestamp: 2025-11-26T06:37:07.886Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/dm-data/ directories, BAL test data files (such as those in array-inner/inline/, array-root/inline/, basic/inline/, and their reusable counterparts) may intentionally contain type errors and other violations. These are comparison files used to test data mapper functionality and error handling, so such errors should not be flagged as issues.
📚 Learning: 2025-11-26T06:34:09.752Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:128-134
Timestamp: 2025-11-26T06:34:09.752Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the goPrevViewBreadcrumb() method is only called when in a focused view, ensuring breadcrumbs are always present. No guard for empty breadcrumbs is needed.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-26T07:49:56.428Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:136-141
Timestamp: 2025-11-26T07:49:56.428Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the goPrevViewBackButton() method is only called when in a focused view, ensuring breadcrumbs are always present. No guard for empty breadcrumbs is needed.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-26T06:35:19.217Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:173-178
Timestamp: 2025-11-26T06:35:19.217Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the commented-out debugging block in the verifyFileContent function (lines 172-177 containing console.log, page.pause, and updateDataFileSync) is intentionally kept as a developer utility for updating test data files when needed. It should not be removed.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/verification.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/**/*.test.{ts,tsx} : Create snapshot tests for all node widgets and verify visual consistency across renders
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/verification.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/**/*.{ts,tsx} : Define all constants (node types, sizing, spacing) in src/resources/constants.ts and import them where needed instead of hardcoding values
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-05T10:31:47.583Z
Learnt from: madushajg
Repo: wso2/vscode-extensions PR: 830
File: workspaces/ballerina/ballerina-extension/test/ai/post_proccess/post.test.ts:0-0
Timestamp: 2025-11-05T10:31:47.583Z
Learning: In the workspaces/ballerina/ballerina-extension project, the tsconfig.json uses "rootDirs": ["src", "test"], which allows test files to import from src using shorter relative paths. For example, from test/ai/post_proccess/, the import '../../stateMachine' correctly resolves to src/stateMachine.ts due to this configuration.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-26T06:33:22.950Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:86-112
Timestamp: 2025-11-26T06:33:22.950Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, empty catch blocks around progress ring waitForSelector calls (state: 'attached' and 'detached') are intentional. The progress ring duration depends on machine performance and may appear very briefly, causing the wait to miss the event. The try-catch allows the test to proceed gracefully regardless of timing.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/**/*.config.{js,ts} : Use minimatch-compatible glob patterns for file matching in build and test configuration files
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/stories/**/*.json : Provide sample data files in JSON format for Storybook stories covering: empty project, automation only, simple service, multiple services, complex connections, AI services, GraphQL services, and multiple connections
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/Ballerina.tomlworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/main.balworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
📚 Learning: 2025-11-26T06:37:07.886Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/dm-data/array-inner/inline/map3.bal.txt:6-8
Timestamp: 2025-11-26T06:37:07.886Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/dm-data/ directories, BAL test data files (such as those in array-inner/inline/, array-root/inline/, basic/inline/, and their reusable counterparts) may intentionally contain type errors and other violations. These are comparison files used to test data mapper functionality and error handling, so such errors should not be flagged as issues.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.ts
📚 Learning: 2025-11-10T15:05:11.309Z
Learnt from: madushajg
Repo: wso2/vscode-extensions PR: 868
File: workspaces/bi/bi-extension/src/utils.ts:224-242
Timestamp: 2025-11-10T15:05:11.309Z
Learning: The workspaces/bi/bi-extension and workspaces/ballerina/ballerina-extension are separate VS Code extensions that are packaged and distributed independently, so they cannot share code via imports and must maintain their own implementations of common utilities.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/**/*.{ts,tsx} : Use TypeScript 5.8.3 with strict type checking enabled for all source files
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/index.ts : Export the main Diagram component as the default export from the package entry point (index.ts)
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/resources/icons/**/*.tsx : Create separate SVG icon components in src/resources/icons/ for all diagram icons and import them as React components
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/components/**/*.tsx : Use React 18.2.0 features including concurrent rendering and automatic batching; avoid class components in favor of functional components with hooks
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.ts
📚 Learning: 2025-11-10T15:04:50.474Z
Learnt from: madushajg
Repo: wso2/vscode-extensions PR: 868
File: workspaces/bi/bi-extension/src/utils.ts:153-169
Timestamp: 2025-11-10T15:04:50.474Z
Learning: The workspaces/bi/bi-extension and workspaces/ballerina/ballerina-extension are separate, independently deployable VSCode extensions in the wso2/vscode-extensions repository. Code duplication between these extensions is acceptable and often necessary to maintain their independence, rather than creating cross-extension dependencies.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts
🧬 Code graph analysis (5)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.ts (3)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (4)
addArtifact(36-36)getWebview(33-33)page(21-21)enableICP(36-36)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.ts (1)
getWebview(24-63)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (1)
page(33-33)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/verification.ts (2)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (2)
verifyGeneratedSource(39-39)newProjectPath(24-24)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (1)
newProjectPath(31-31)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.ts (3)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (2)
getWebview(33-33)page(21-21)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (1)
page(33-33)workspaces/mcp-inspector/mcp-inspector-extension/src/utils/logger.ts (1)
error(24-26)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (2)
workspaces/mi/mi-extension/src/test/e2e-playwright-tests/Utils.ts (1)
dataFolder(30-30)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (3)
resourcesFolder(23-23)newProjectPath(24-24)vscode(22-22)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.ts (1)
workspaces/mi/mi-extension/src/test/e2e-playwright-tests/Utils.ts (1)
videosFolder(36-36)
🔇 Additional comments (36)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.ts (1)
43-43: LGTM!The trailing newline is a formatting change with no functional impact. The file is now properly integrated into the new barrel export structure.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts (1)
19-22: Well-structured barrel export!The centralized page object exports improve maintainability and simplify import statements across test files. This aligns well with the PR's goal of creating a cleaner test suite structure.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.ts (1)
19-19: Import path correctly updated.The migration to
../utils/helpersaligns with the new module structure without affecting test behavior.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.ts (1)
20-22: Import paths correctly refactored.Both imports have been updated to use the new module structure and barrel exports, maintaining test functionality while improving organization.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.ts (1)
20-22: Consistent import refactoring applied.The import path updates follow the same pattern as other test files in this PR, ensuring consistency across the test suite.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.ts (1)
19-21: Import migration completed successfully.The refactored imports align with the new test utility structure without altering test behavior.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.ts (1)
19-19: Import path successfully updated.The migration to the new helpers module is correctly applied.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts (1)
20-22: Import refactoring completed consistently.The updated import paths complete the systematic restructuring of the E2E test suite, aligning with the new module organization.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.ts (1)
22-22: Import path refactor to helpers barrel looks correctSwitching
getWebview,initMigrationTest, andpageto come from../utils/helpersmatches the new helpers barrel pattern and keeps the test body unchanged.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.ts (1)
20-22: Updated helpers/pages imports are consistent with the new test utilities layoutUsing
../utils/helpersforaddArtifact,initTest,pageand../utils/pagesforProjectExploreraligns this spec with the refactored utilities without altering behavior.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.ts (1)
21-23: Helpers and page-object imports now use centralized barrelsRefactoring imports to
../utils/helpersand../utils/pageskeeps the Type Diagram tests in sync with the shared utilities structure; usages ofaddArtifact,initTest,page, andProjectExplorerremain valid.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.ts (1)
19-21: TCP service spec correctly migrated to new helpers/pages modulesThe move to import
addArtifact,initTest,pagefrom../utils/helpersandProjectExplorerfrom../utils/pagesmatches the shared structure used across the suite; no behavioral impact.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.ts (1)
20-22: GitHub integration tests now aligned with shared helpers/pages barrelsUsing
../utils/helpersand../utils/pagesfor shared utilities andProjectExplorerkeeps this spec consistent with the rest of the E2E suite, with no change to the test logic.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts (1)
19-21: HTTP service spec import cleanup matches the new utilities structureThe updated imports from
../utils/helpersand../utils/pagesare consistent with the new barrels and preserve existing behavior.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.ts (1)
20-22: Directory integration tests correctly switched to helpers/pages barrelsRefactoring imports to
../utils/helpersand../utils/pagesbrings this spec in line with the shared E2E utilities, without altering the test flow.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.ts (1)
20-22: MQTT integration spec imports updated to shared helpers/pagesUsing the centralized
../utils/helpersand../utils/pagesmodules for test helpers andProjectExploreris consistent with the refactored E2E test suite and keeps behavior intact.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.ts (1)
20-22: LGTM! Consistent with the refactoring pattern.Import paths successfully updated to use the new barrel exports.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.ts (1)
21-23: LGTM! Import paths correctly updated.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.ts (1)
20-22: LGTM! Import refactoring applied correctly.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.ts (1)
20-22: LGTM! Imports updated consistently.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.ts (1)
20-20: LGTM! Import updated with new helper utilities.This test now uses the new
getWebviewandverifyGeneratedSourcehelpers, which simplify webview access and code verification. Good adoption of the refactored utilities.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.ts (2)
20-20: LGTM! Central test list updated correctly.Import path for shared page utility correctly updated to use the new helpers barrel.
27-50: LGTM! All test spec imports updated consistently.All test module imports reflect the new directory structure. The refactoring maintains clean separation between test categories (api-integration, event-integration, file-integration, etc.).
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.ts (1)
20-22: LGTM! Import refactoring completed consistently.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.ts (1)
20-22: LGTM! Clean import path refactoring.The updated import paths align with the new modular structure where test utilities are centralized under
utils/helpersand page objects underutils/pages.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.ts (1)
20-22: LGTM! Clean module reorganization.The import path updates correctly reflect the new utility structure without altering test logic.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.ts (1)
19-21: LGTM! Consistent with module reorganization.Import paths correctly updated to match the new helpers/pages structure.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.ts (1)
20-22: LGTM! Module paths updated correctly.The reorganization maintains consistency across the test suite.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.ts (1)
43-54: LGTM! Good defensive logic.The function correctly checks the current state before toggling, preventing unnecessary interactions.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.ts (1)
24-63: LGTM! Robust retry logic for webview access.The implementation correctly handles frame detachment and includes appropriate retry mechanisms with sidebar reselection. The 3-retry limit and wait times are reasonable for E2E test stability.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (1)
20-39: LGTM! Clean barrel export pattern.The centralized export structure improves import ergonomics and maintainability across the test suite.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/verification.ts (2)
26-35: LGTM! Comprehensive normalization for test comparisons.The multi-step normalization correctly handles line endings, whitespace, and formatting differences that could cause false failures in content comparison tests.
42-63: LGTM! Well-structured verification with clear error messages.The function provides comprehensive file validation and normalized comparison, with descriptive error messages for debugging test failures.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (1)
27-30: LGTM! Path adjustments correct for new directory structure.The relative paths are correctly updated to reflect the move from
utils/toutils/helpers/, adding appropriate..segments.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/Ballerina.toml (1)
1-7: LGTM! Test project configuration is properly structured.The Ballerina package manifest is correctly formatted with all required fields. The
sticky = truebuild option and the test organization name "nino" are appropriate for E2E test fixture data.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/main.bal (1)
6-12: Missing return statement causes compilation error in success path.The resource function declares return type
error|json|http:InternalServerErrorbut has no return statement when the emptydoblock completes successfully. Theon failclause is unreachable since no operations in the do block can fail. This will cause a Ballerina compilation error.If this fixture is meant to represent valid sample code for testing project creation or build flows, add a return statement in the do block:
resource function get greeting() returns error|json|http:InternalServerError { do { + return { message: "Hello, World!" }; } on fail error err { // handle error return error("unhandled error", err); } }If this file intentionally contains broken code for error-scenario testing, clarify this intent and document it accordingly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR restructures the BI E2E test suite to improve organization and align with a new E2E test proposal. The changes primarily focus on better code organization through:
- Splitting utility functions into focused modules under
utils/helpers/ - Consolidating page object models under
utils/pages/ - Updating import paths across all test files to reflect the new structure
- Renaming test directories from generic names (e.g.,
api-services,event-integrations) to more consistent naming (e.g.,api-integration,event-integration)
Key Changes
- Extracted helper functions (
webview.ts,verification.ts,artifacts.ts) fromsetup.tsinto separate, focused modules for better maintainability - Organized page objects (
ConfigEditor,Diagram,ProjectExplorer,SidePanel) under a dedicatedutils/pages/directory with barrel exports - Renamed test suite directories to use consistent singular form naming (
api-integration,event-integration,file-integration,type-editor,service-designer)
Reviewed changes
Copilot reviewed 34 out of 48 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
utils/helpers/index.ts |
Barrel export file for centralized helper imports |
utils/helpers/webview.ts |
Extracted webview retry logic from setup.ts |
utils/helpers/verification.ts |
Extracted source code verification utilities |
utils/helpers/artifacts.ts |
Extracted artifact management functions |
utils/helpers/setup.ts |
Removed extracted functions, updated path references |
utils/pages/index.ts |
Barrel export for page objects |
utils/pages/ConfigEditor.ts |
New page object for configuration editor interactions |
utils/pages/Diagram.ts |
New page object for diagram view interactions |
utils/pages/ProjectExplorer.ts |
New page object for project explorer interactions |
utils/pages/SidePanel.ts |
Modified page object with minor formatting fix |
type-editor/TypeEditorUtils.ts |
Moved from type/ directory (renamed directory) |
type-editor/type.spec.ts |
Updated import paths to reflect new structure |
service-designer/serviceEditorUtils.ts |
Moved from service-class-designer/ (renamed directory) |
service-designer/service-class.spec.ts |
Updated import paths to reflect new structure |
api-integration/*.spec.ts |
Renamed from api-services/, updated import paths |
api-integration/graphqlUtils.ts |
New utility file with updated imports |
event-integration/*.spec.ts |
Renamed from event-integrations/, updated import paths |
file-integration/*.spec.ts |
Renamed from file-integrations/, updated import paths |
test.list.ts |
Updated all import paths to reflect directory renames |
template/template.spec.ts |
Removed unused template file |
Comments suppressed due to low confidence (1)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.ts:23
- Incorrect import path: should be
'../type-editor/TypeEditorUtils'instead of'../type/TypeEditorUtils'. The TypeEditorUtils file is located in the type-editor directory, not the type directory.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.ts
Outdated
Show resolved
Hide resolved
1405dac to
f9bbf1a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.ts (1)
33-33: Remove the developer note comment.The comment
// how to get element by idappears to be a leftover developer note and should be removed.Apply this diff:
- // how to get element by id const addArtifactBtn = artifactWebView.locator(`#${testId}`);
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (36)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphqlUtils.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/template/template.spec.ts(0 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/Ballerina.toml(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/main.bal(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/verification.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.ts(1 hunks)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts(1 hunks)
💤 Files with no reviewable changes (1)
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/template/template.spec.ts
✅ Files skipped from review due to trivial changes (2)
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/SidePanel.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphqlUtils.ts
🚧 Files skipped from review as they are similar to previous changes (18)
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/automation/automation.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/ai-chat-service.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/np.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/import-integration/import-integration.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/http-service.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/directory.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/type.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/connection.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/expression-editor/expression-editor.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/verification.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/kafka.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/Ballerina.toml
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/tcp-service.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/file-integration/ftp.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/rabbitmq.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/function.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/configuration/configuration.spec.ts
- workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/mqtt.spec.ts
🧰 Additional context used
🧠 Learnings (17)
📓 Common learnings
Learnt from: madushajg
Repo: wso2/vscode-extensions PR: 868
File: workspaces/bi/bi-extension/src/utils.ts:224-242
Timestamp: 2025-11-10T15:05:11.309Z
Learning: The workspaces/bi/bi-extension and workspaces/ballerina/ballerina-extension are separate VS Code extensions that are packaged and distributed independently, so they cannot share code via imports and must maintain their own implementations of common utilities.
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/**/*.test.{ts,tsx} : Create snapshot tests for all node widgets and verify visual consistency across renders
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/dm-data/array-inner/inline/map3.bal.txt:6-8
Timestamp: 2025-11-26T06:37:07.886Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/dm-data/ directories, BAL test data files (such as those in array-inner/inline/, array-root/inline/, basic/inline/, and their reusable counterparts) may intentionally contain type errors and other violations. These are comparison files used to test data mapper functionality and error handling, so such errors should not be flagged as issues.
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:173-178
Timestamp: 2025-11-26T06:35:19.217Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the commented-out debugging block in the verifyFileContent function (lines 172-177 containing console.log, page.pause, and updateDataFileSync) is intentionally kept as a developer utility for updating test data files when needed. It should not be removed.
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/stories/**/*.json : Provide sample data files in JSON format for Storybook stories covering: empty project, automation only, simple service, multiple services, complex connections, AI services, GraphQL services, and multiple connections
Learnt from: madushajg
Repo: wso2/vscode-extensions PR: 868
File: workspaces/bi/bi-extension/src/utils.ts:153-169
Timestamp: 2025-11-10T15:04:50.474Z
Learning: The workspaces/bi/bi-extension and workspaces/ballerina/ballerina-extension are separate, independently deployable VSCode extensions in the wso2/vscode-extensions repository. Code duplication between these extensions is acceptable and often necessary to maintain their independence, rather than creating cross-extension dependencies.
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:136-141
Timestamp: 2025-11-26T07:49:56.428Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the goPrevViewBackButton() method is only called when in a focused view, ensuring breadcrumbs are always present. No guard for empty breadcrumbs is needed.
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:128-134
Timestamp: 2025-11-26T06:34:09.752Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the goPrevViewBreadcrumb() method is only called when in a focused view, ensuring breadcrumbs are always present. No guard for empty breadcrumbs is needed.
📚 Learning: 2025-11-26T06:35:19.217Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:173-178
Timestamp: 2025-11-26T06:35:19.217Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the commented-out debugging block in the verifyFileContent function (lines 172-177 containing console.log, page.pause, and updateDataFileSync) is intentionally kept as a developer utility for updating test data files when needed. It should not be removed.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts
📚 Learning: 2025-11-26T06:34:09.752Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:128-134
Timestamp: 2025-11-26T06:34:09.752Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the goPrevViewBreadcrumb() method is only called when in a focused view, ensuring breadcrumbs are always present. No guard for empty breadcrumbs is needed.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts
📚 Learning: 2025-11-26T07:49:56.428Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:136-141
Timestamp: 2025-11-26T07:49:56.428Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, the goPrevViewBackButton() method is only called when in a focused view, ensuring breadcrumbs are always present. No guard for empty breadcrumbs is needed.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts
📚 Learning: 2025-11-26T06:37:07.886Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/dm-data/array-inner/inline/map3.bal.txt:6-8
Timestamp: 2025-11-26T06:37:07.886Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/dm-data/ directories, BAL test data files (such as those in array-inner/inline/, array-root/inline/, basic/inline/, and their reusable counterparts) may intentionally contain type errors and other violations. These are comparison files used to test data mapper functionality and error handling, so such errors should not be flagged as issues.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.ts
📚 Learning: 2025-11-26T06:33:22.950Z
Learnt from: KCSAbeywickrama
Repo: wso2/vscode-extensions PR: 653
File: workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts:86-112
Timestamp: 2025-11-26T06:33:22.950Z
Learning: In workspaces/bi/bi-extension/src/test/e2e-playwright-tests/data-mapper/DataMapperUtils.ts, empty catch blocks around progress ring waitForSelector calls (state: 'attached' and 'detached') are intentional. The progress ring duration depends on machine performance and may appear very briefly, causing the wait to miss the event. The try-catch allows the test to proceed gracefully regardless of timing.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/**/*.test.{ts,tsx} : Create snapshot tests for all node widgets and verify visual consistency across renders
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/**/*.{ts,tsx} : Define all constants (node types, sizing, spacing) in src/resources/constants.ts and import them where needed instead of hardcoding values
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/**/*.config.{js,ts} : Use minimatch-compatible glob patterns for file matching in build and test configuration files
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts
📚 Learning: 2025-11-05T10:31:47.583Z
Learnt from: madushajg
Repo: wso2/vscode-extensions PR: 830
File: workspaces/ballerina/ballerina-extension/test/ai/post_proccess/post.test.ts:0-0
Timestamp: 2025-11-05T10:31:47.583Z
Learning: In the workspaces/ballerina/ballerina-extension project, the tsconfig.json uses "rootDirs": ["src", "test"], which allows test files to import from src using shorter relative paths. For example, from test/ai/post_proccess/, the import '../../stateMachine' correctly resolves to src/stateMachine.ts due to this configuration.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/**/*.{ts,tsx} : Use TypeScript 5.8.3 with strict type checking enabled for all source files
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/stories/**/*.json : Provide sample data files in JSON format for Storybook stories covering: empty project, automation only, simple service, multiple services, complex connections, AI services, GraphQL services, and multiple connections
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/main.balworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.ts
📚 Learning: 2025-11-10T15:05:11.309Z
Learnt from: madushajg
Repo: wso2/vscode-extensions PR: 868
File: workspaces/bi/bi-extension/src/utils.ts:224-242
Timestamp: 2025-11-10T15:05:11.309Z
Learning: The workspaces/bi/bi-extension and workspaces/ballerina/ballerina-extension are separate VS Code extensions that are packaged and distributed independently, so they cannot share code via imports and must maintain their own implementations of common utilities.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/components/**/*.tsx : Use React 18.2.0 features including concurrent rendering and automatic batching; avoid class components in favor of functional components with hooks
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/index.ts : Export the main Diagram component as the default export from the package entry point (index.ts)
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts
📚 Learning: 2025-11-25T06:34:10.812Z
Learnt from: CR
Repo: wso2/vscode-extensions PR: 0
File: workspaces/ballerina/component-diagram/AGENTS.md:0-0
Timestamp: 2025-11-25T06:34:10.812Z
Learning: Applies to workspaces/ballerina/component-diagram/src/resources/icons/**/*.tsx : Create separate SVG icon components in src/resources/icons/ for all diagram icons and import them as React components
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.tsworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts
📚 Learning: 2025-11-10T15:04:50.474Z
Learnt from: madushajg
Repo: wso2/vscode-extensions PR: 868
File: workspaces/bi/bi-extension/src/utils.ts:153-169
Timestamp: 2025-11-10T15:04:50.474Z
Learning: The workspaces/bi/bi-extension and workspaces/ballerina/ballerina-extension are separate, independently deployable VSCode extensions in the wso2/vscode-extensions repository. Code duplication between these extensions is acceptable and often necessary to maintain their independence, rather than creating cross-extension dependencies.
Applied to files:
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts
🧬 Code graph analysis (4)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (2)
workspaces/mi/mi-extension/src/test/e2e-playwright-tests/Utils.ts (1)
dataFolder(30-30)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (3)
resourcesFolder(23-23)newProjectPath(24-24)vscode(22-22)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.ts (1)
workspaces/mi/mi-extension/src/test/e2e-playwright-tests/Utils.ts (1)
videosFolder(36-36)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/artifacts.ts (3)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (4)
addArtifact(36-36)getWebview(33-33)page(21-21)enableICP(36-36)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.ts (1)
getWebview(24-63)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (1)
page(33-33)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.ts (2)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (2)
getWebview(33-33)page(21-21)workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (1)
page(33-33)
🔇 Additional comments (15)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/data/new-project/testProject/sample/main.bal (1)
1-3: LGTM!The import and listener setup follow standard Ballerina conventions.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/test.list.ts (1)
20-50: LGTM! Clean organizational refactor.The import path updates consistently align with the PR's restructuring goals:
- Helper utilities centralized under
utils/helpers- Test directories renamed to singular form (api-integration, event-integration, file-integration)
- More descriptive naming (type → type-editor, service-class-designer → service-designer)
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/other-artifacts/data-mapper.spec.ts (1)
20-22: LGTM! Imports updated to match new structure.Utilities now imported from centralized helpers and pages modules, consistent with the broader refactor.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/service-designer/service-class.spec.ts (1)
19-19: LGTM! Helper import path updated.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/salesforce.spec.ts (1)
20-22: LGTM! Import paths aligned with new structure.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/github.spec.ts (1)
20-22: LGTM! Consistent import refactoring.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/azure.spec.ts (1)
20-22: LGTM! Import paths updated correctly.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/type-editor/type.spec.ts (1)
20-20: LGTM! Helper utilities import updated.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/api-integration/graphql-service.spec.ts (1)
19-23: LGTM! All import paths updated consistently.The imports reflect the restructured organization:
- Helpers from centralized
utils/helpers- Pages from
utils/pages- Type utilities from renamed
type-editordirectoryworkspaces/bi/bi-extension/src/test/e2e-playwright-tests/event-integration/twillio.spec.ts (1)
20-22: LGTM: Import paths updated correctly.The import paths now align with the new test utilities structure, using centralized barrel exports from
../utils/helpersand../utils/pages.workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/pages/index.ts (1)
19-22: LGTM: Clean barrel export pattern.The centralized page object exports provide a single import source for UI components, improving maintainability.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/webview.ts (1)
24-63: LGTM: Robust retry logic for webview access.The implementation handles frame detachment gracefully with retry logic, logging, and sidebar item reselection between attempts.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/index.ts (1)
20-39: LGTM: Comprehensive barrel export for test utilities.The centralized helper exports provide a clean API surface with clear organization by source module.
workspaces/bi/bi-extension/src/test/e2e-playwright-tests/utils/helpers/setup.ts (2)
32-32: Type annotation added for vscode.The explicit
anytype annotation improves clarity, though consider using a more specific type if available from@wso2/playwright-vscode-tester.
27-30: Verify the extensionsFolder path calculation.The path joins 5 directory levels up from the helpers directory (
../../../../../). Please confirm whether this resolves to the intended location and that the vsix directory exists at that resolved path.
Purpose
This PR restructures the BI E2E test suite to improve organization and align with a new E2E test proposal. The changes primarily focus on better code organization through:
utils/helpers/utils/pages/api-services,event-integrations) to more consistent naming (e.g.,api-integration,event-integration)Key Changes
webview.ts,verification.ts,artifacts.ts) fromsetup.tsinto separate, focused modules for better maintainabilityConfigEditor,Diagram,ProjectExplorer,SidePanel) under a dedicatedutils/pages/directory with barrel exportsapi-integration,event-integration,file-integration,type-editor,service-designer)Part of wso2/product-ballerina-integrator#2006
Goals
Approach
UI Component Development
npm run storybookfrom the root directory to view current components.Manage Icons
User stories
Release note
Documentation
Training
Certification
Marketing
Automation tests
Security checks
Samples
Related PRs
Migrations (if applicable)
Test environment
Learning
Summary by CodeRabbit
Tests
Chores
✏️ Tip: You can customize this high-level summary in your review settings.